package com.gengzp.common.model.task.entity;

import com.gengzp.common.model.generic.entity.GenericEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;
import java.util.Date;

/**
 * @ClassName ScheduledTask
 * @Description 定时任务实体类
 * @Author gengzp
 * @Date 2025/9/30 11:10
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class ScheduledTask extends GenericEntity {

    @Serial
    private static final long serialVersionUID = -7177652021198903839L;

    /**
     * 任务名
     */
    private String taskName;

    /**
     * 任务描述
     */
    private String taskDescription;

    /**
     * 服务名
     */
    private String serviceName;

    /**
     * 任务调用接口资源标识
     */
    private String uri;

    /**
     * 上次执行时间
     */
    private Date lastExecuteTime;

    /**
     * 下次执行时间
     */
    private Date nextExecuteTime;

    /**
     * cron表达式
     */
    private String cronExpression;

    /**
     * cron表达式的描述
     */
    private String cronDescription;

    /**
     * 上次执行状态
     * {@link com.gengzp.common.enums.TaskExecuteStatusEnum}
     */
    private Integer lastExecuteStatus;

    /**
     * 上次执行返回信息
     */
    private String lastExecuteResponse;

    /**
     * 开启状态
     * {@link com.gengzp.common.enums.YesNoEnum}
     */
    private Integer startStatus;

    /**
     * 执行次数
     */
    private Integer executeCount;

}
